﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Acamps.Framework.BancoDados;
using Acamps.Framework.SessionFactory;

namespace Acamps.Framework.NegocioRegras
{
    public class LoginNegocio
    {
        private AcessoDados _acessoDados;

        internal LoginNegocio(string conexao)
        {
            _acessoDados = new AcessoDados(conexao);
        }

        public LoginUser Pesquisar(string login)
        {
            LoginUser loginPesquisado = _acessoDados.Entidade.LoginUsers.FirstOrDefault(x => x.Login == login);

            if (loginPesquisado != null)
            {
                if(!loginPesquisado.PerfilReference.IsLoaded) loginPesquisado.PerfilReference.Load();
            }

            return loginPesquisado;
        }

        public void AlterarSenha(LoginUser login)
        {
            LoginUser loginPesquisado = _acessoDados.Entidade.LoginUsers.FirstOrDefault(x => x.Id == login.Id);

            if (loginPesquisado != null)
            {
                try
                {
                    loginPesquisado.Senha = login.Senha;
                    _acessoDados.Entidade.SaveChanges();
                }
                catch (Exception ex)
                {
                    throw new Exception("Problema ao alterar a senha. Erro: " + ex.Message);
                }
            }
        }

    }
}
